iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
Vue.js

Vue3 - 從零開始學系列 第 22

Vue3 - 從零開始學 - Day22 - Composition 函式

  • 分享至 

  • xImage
  •  

這個單元要來繼續介紹在 Composition API 的函式使用方法。

函式的宣告直接宣告在 setup() {} 即可,如果是要修改 ref 的變數時:

<script>
import { ref, reactive } from 'vue';

export default {
  name: 'App',
  setup() {
    const count = ref(0);
    
    function incrementCount() {
      count.value++;
    }
    
    return {
      count,
      incrementCount,
    };
  },
};
</script>

在這裡宣告了一個函式 incrementCount(),會將變數 count 累加 1 ,所以修改其值不要忘記使用 .value,另外 return 時,也一併要將 incrementCount 這個函式 return 出去,在 <template> 內的按鈕才可以呼叫得到。

所以加上按鈕:

<template>
  <p>{{ count }}</p>
  <button @click="incrementCount">button</button>
</template>

<script>
import { ref, reactive } from 'vue';

export default {
  name: 'App',
  setup() {
    const count = ref(0);
    
    function incrementCount() {
      count.value++;
    }
    
    return {
      count,
      incrementCount,
    };
  },
};
</script>

如果要讓函式可以修改用 reactive 宣告的變數:

<template>
  <p>{{ state.count }}</p>
  <button @click="incrementCount">button</button>
</template>

<script>
import { ref, reactive } from 'vue';

export default {
  name: 'App',
  setup() {
    const state = reactive({
      count: 0,
    });
    
    function incrementCount() {
      state.count++;
    }

    return {
      state,
      incrementCount,
    };
  },
};
</script>

宣告了一個結構變數 state 裡面有一個變數 count,所以 incrementCount() 函式在修改結構變數 state.count 就不需要使用 .value,在 return 一樣,也要 return incrementCount 函式出去。

今日程式碼範例

Vue3 - 從零開始學 - Day22 [完]


上一篇
Vue3 - 從零開始學 - Day21 - Composition
下一篇
Vue3 - 從零開始學 - Day23 - Composition input
系列文
Vue3 - 從零開始學31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言